package rsj.job.statistic;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.time.LocalDate;
import java.util.List;

/**
 * 定时统计产品使用量
 *
 * @author yuanqinglong
 * @since 2021/3/11 13:49
 */
public interface IStatisticUsageJob {

    Logger logger = LoggerFactory.getLogger(IStatisticUsageJob.class);


    /**
     * 执行统计
     *
     * @param statisticsDate 统计日期
     * @param orgId          统计机构id
     * @param environment    环境（01：测试环境、02：生产环境）
     */
     void performStatistics(LocalDate statisticsDate, String orgId, String environment);




    /**
     * 统计的sql语句
     * 统计产品使用量SQL语句
     *
     * @param statisticsDate 统计日期
     * @param orgId          统计机构id（如果传递机构id 则是手动触发此机构的统计 、未传递机构id统计指定统计日期的所有机构的使用情况）
     * @param cost           1 计费
     * @return SQL
     */
    String statisticalSqlStatement(LocalDate statisticsDate, String orgId, String cost);



    /**
     * 将统计数据添加到统计表SQL
     *
     * @param statisticColumnEntities 统计数据
     * @param statisticsDate          统计日期
     * @param environment             环境（01：测试环境、02：生产环境）
     * @return 添加SQL
     */
    String addToStatisticalTableSql(List<StatisticColumnEntity> statisticColumnEntities, LocalDate statisticsDate, String environment);


}
